package com.app.service;

import com.app.domain.bo.MenuBo;
import com.app.domain.page.Page;
import com.app.domain.po.MenuPo;
import com.app.domain.vo.MenuVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * 菜单方法
 */
public interface MenuService extends IService<MenuPo> {

    /**
     * 菜单列表
     */
    Page<MenuVo> lists(MenuBo bo);

    /**
     * 菜单详情
     *
     * @param menuId 菜单id
     */
    MenuVo details(Long menuId);

    /**
     * 添加菜单
     *
     * @param bo 入参
     */
    void saveOne(MenuBo bo);

    /**
     * 修改菜单
     *
     * @param bo 入参
     */
    void updateOne(MenuBo bo);

    /**
     * 删除菜单
     *
     * @param menuId 菜单ID
     */
    void deleteOne(Long menuId);

    //--------------------------------------------------------------|↓|公共方法|↓|-----------------------------------------------------------------
    //--------------------------------------------------------------|↓|公共方法|↓|-----------------------------------------------------------------
    //--------------------------------------------------------------|↓|公共方法|↓|-----------------------------------------------------------------

    /**
     * 获取菜单Map
     *
     * @param menuIds 菜单ID集合
     */
    Map<Long, MenuVo> getMenuMap(List<Long> menuIds);

}